//package com.gf.dynamicdemo.convert;
//
//import com.gf.dynamicdemo.entity.DynamicConfig;
//import com.gf.framework.common.json.GfJsonMapper;
//import com.gf.framework.common.utils.ReflectUtil;
//import com.gf.framework.web.translate.Translatable;
//import org.springframework.stereotype.Component;
//
///**
// * @author gaofei
// * @date 2022/6/10 20:37
// */
//@Component
//public class DynamicTranlator implements Translatable<DynamicConfig, Object> {
//
//    @Override
//    public Object translate(DynamicConfig original, Class<?> datasource, String param) {
//        // 根据属性名，获取对应属性的数据
//        Object obj = ReflectUtil.invokeGet(original, param);
//        if (obj != null) {
//            // 属性不为null，说明是save或者uypdate，然后就给configStr赋值
//            original.setConfigStr(GfJsonMapper.obj2String(obj));
//            return obj;
//        }
//        if (original.getConfigStr() != null) {
//            // 属性是null，那么尝试从configstr解码出来成自己的类型，成功的话就返回，否则返回null。
//            return GfJsonMapper.string2Obj(original.getConfigStr(), datasource);
//        }
//        return null;
//    }
//}
